//#include <iostream>
//#include<algorithm>
//#include<string>
//using namespace std;
//
//bool isPalindrome(string& s)
//{
//    string rstr(s);
//    reverse(s.begin(), s.end());
//
//    if (s == rstr)
//        return true;
//    else
//        return false;
//
//
//}
//
//
//int main()
//{
//    string A;
//    string B;
//    getline(cin, A);
//    getline(cin, B);
//
//    int count = 0;
//    for (int i = 0; i < A.size()+1; i++)
//    {
//        string tmp(A);
//        if(isPalindrome(tmp.insert(i,B)))
//            count++;
//    }
//
//    cout << count << endl;
//
//    return 0;
//}


#include <iostream>
#include<vector>
using namespace std;

//int main()
//{
//    int n;
//    cin >> n;
//
//    vector<int> v;
//    v.resize(n);
//    for (int i = 0; i < n; i++)
//    {
//        cin >> v[i];
//    }
//
//    int i = 0, j = 0;
//    int max = 0, sum = 0;
//    while (j < v.size())
//    {
//        if (v[j] >= 0)
//        {
//            sum += v[j];
//            j++;
//        }
//        else
//        {
//            if (sum >= max)
//            {
//                max = sum;
//                sum = 0;
//            }
//
//            j++;
//            i = j;
//        }
//    }
//
//    if (sum > max)
//        max = sum;
//
//    cout << max << endl;
//    return 0;
//}

#include<algorithm>


//int main()
//{
//    int n;
//    cin >> n;
//
//    vector<int> v;
//    v.resize(3 * n);
//    for (int i = 0; i < 3 * n; i++)
//    {
//        cin >> v[i];
//    }
//    sort(v.begin(), v.end());
//
//    int ret = 0;
//    // for(int i=0;i<n;i++)
//    // {
//    //     ret+=v[v.size()-2*(i+1)];
//    // }
//
//    cout << ret << endl;
//    return  0;
//}

#include <iostream>
#include<algorithm>
#include<string>
using namespace std;

int main()
{
    string s;
    getline(cin, s);

    reverse(s.begin(), s.end());

    string::iterator _start = s.begin();
    while (_start != s.end())
    {
        string::iterator _end = _start;
        while (_end != s.end() && (*_end) != ' ')
        {
            _end++;
        }

        reverse(_start, _end);
       if (_end == s.end())
         {
             _start = _end;
        }
        else if ((*_end) == ' ')
        {
            _start = _end + 1;
        }
       
    }

    cout << s << endl;


    return 0;
}